import axios from 'axios'
import { ElMessage } from 'element-plus'
import { useStore } from '../store/store'

const store = useStore()

const myaxios = axios.create({
  baseURL: 'https:/v3pz.itndedu.com/v3pz',
  // baseURL: '/api',
  timeout: 10000,
})

// 请求拦截
myaxios.interceptors.request.use((config) => {
  // 添加token
  let token = localStorage.getItem('pz_token')
  // token白名单
  const whiteUrl = ['/get/code', '/user/authentication', '/login']
  // 不需要添加token的api
  if (token && !whiteUrl.includes(config.url)) {
    config.headers['x-token'] = token
  } 

  return config
}, (err) => {
  // 错误处理
  return Promise.reject(err)
})

// 响应拦截
myaxios.interceptors.response.use((res) => {
  // 对接口进行异常处理
  if(res.data.code === -1) {
    ElMessage.error(res.data.message) 
  }
  // token错误
  if(res.data.code === -2) {
    ElMessage.error(res.data.message + '请重新登录')
    store.clearUserCache()
    // 跳转登录
    window.location.href = window.location.origin
  }
  if(res.data.code === 503) {
    ElMessage.error("服务器错误")
  }
  return res
}, (err) => {
  // 错误处理
  return Promise.reject(err)
})

export default myaxios